/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package util;

import util.Message;
import util.NetwerkComponent;

/**
 *
 * @author Jonas
 */
public interface Sniffer {
    /**
     * Deze methode moet worden opgeroepen wanneer een bericht verstuurd wordt
     * @param message Het bericht dat over het netwerk gaat
     * @param from De zender van het bericht
     * @param to De ontvanger van het bericht
     */
    public void readTransmission(Message message,NetwerkComponent from, NetwerkComponent to);

    /**
     * Voeg een luisteraar toe, deze zal de verstuurde berichten kunnen verwerken
     * @param subscriber De luisteraar die berichten verzendt
     */
    public void addListener(SnifferListener subscriber);

    /**
     * Verwijder een luisteraar, deze ontvangt geen updates meer
     * @param subscriber De luisteraar die verwijderd moet worden
     */
    public void removeListener(SnifferListener subscriber);
}
